# -*- coding: UTF-8 -*-
import os
from logging import getLogger

SERVER_NAME = ""

logger = getLogger(SERVER_NAME or "default")

SERVER_NAME = os.path.basename(os.getcwd())  # 当前服务名默认为当前文件所在目录的上级目录名


# todo 具名元组 from collections import namedtuple
# 三种调度类型
DELAY_DISPATCH_TYPE = "DELAY"  # 60秒以内延时任务， 非必达任务， 如果迟到就不会执行了
CURRENT_DISPATCH_TYPE = "CURRENT"  # 即时任务， 同时代表必达任务，可能会迟到但不会缺席
TIMING_DISPATCH_TYPE = "TIMING"  # 定时任务，  非必达任务， 如果迟到就不会执行了

MAX_DELAY_SECOND = 60*10  # 延时任务最大延时时间
MAX_CACHE_DELAY_SECOND = 60  # 在内存中的延时任务最大延时时间，距离当前时间60秒以内的任务（即时，延时）才会被放到调度，这里是瓶颈，延时时间在60s内能容纳的任务数，超过此时间的会被持久化
MAX_CACHE_DELAY_NUM = 10000  # 从持久化中获取将要过期的延时任务的最大数量，这里是为了避免一次性将太多的任务塞到缓存，因为缓存还在不断接收
MAX_CACHE_HANDLE_TASK_SECOND = 60  # 任务真正执行的时间，在这段时间内的状态变化直接在内存中修改

ALLOW_DISPATCH_TASK_TYPES = []  # 允许调度的任务类型，可由外部动态配置

DISPATCH_TASK_STATE = {
    ""
}
